The computing industry, over time, has experienced a rapid growth and evolution. Not only have technological advancements led to new models of computing devices, but they have also led to developments in the systems and networks in which the computing devices operate and interact. Each new model of computing device, from mainframes and supercomputers to personal computers and mobile devices, has brought its own share of advantages as well as challenges.
Over the past several decades, computing has been transitioning from distributed systems (e.g. mainframes) to decentralized systems (e.g. personal computers). While the new decentralized, client-oriented personal computer model provided enhanced flexibility and convenience to users, it also resulted in inefficient usage of resources and unnecessary additional costs. For example, each personal computer required the processing power and storage capacity necessary for maximum, rather than typical, loads. As a result, the recent trend in computing has been to a centralized model where applications and data can be centrally managed, stored, and provisioned for the purpose of reducing costs and improving security and efficiency.
One emerging model, known as “the cloud,” relies on the delivery of computing resources via a computer network. Services provided by the cloud may range from individual applications to the full functionality of an operating system. To facilitate delivery of these cloud services, some systems may rely at least partially on remote access technologies, such as remote desktop protocol (RDP). RDP allows a user to view and control a remotely running desktop or application over a network connection. Allowing remote control of remote desktops, applications, and even file systems, however, may expose the server to additional security risks and unauthorized access. In addition, errors or inefficiencies may arise from the actions of a user of an RDP service that could be corrected or improved with analysis from the server.
Therefore, a need exists in the art for a computing system that allows monitoring of an RDP session by the server so as to prevent or mitigate issues caused by security threats, errors, or inefficiencies arising from the RDP client.